EDI UnInstall - User Manual

For information on how to use the Help system, press F1 or choose Using Help from the Help menu.

Basics

•	Introduction

•	Installation procedure

•	General INF information

•	Distribution

Advanced

•	Custom DLLs

Reference

•	Sample INF file

•	INF Sections

Legal information

•	Copyright

•	Disclaimer


Introduction

Welcome to EDI UnInstall for Windows!

This manual will guide you through the process of using and understanding EDI UnInstall, and how it can be of benefit to you.

What is EDI UnInstall?

EDI UnInstall is a complete uninstallation utility that you can use "right out of the box". It allows your users to easily remove your application from their system. With today's complex applications it is no longer enough to install your application, you must provide a way for users to remove it. Users demand friendly, easy to use utilities, that provide a simple and precise method of removing applications. This is especially true of Windows, a market so fierce that the first impression can make or break your product.

What does it do?

EDI UnInstall deletes the proper directories and application files, removes the Program Manager group items, removes or changes INI files or sections, and optionally deletes user data files.

The user is always has control of the process, but never feels burdened by too much information. EDI UnInstall is easy to use by you and your customers, yet allows both of you great leeway in customization.

How does it work?

EDI UnInstall reads the file UNINSTAL.INF (refered to as an INF file from now on), which contains the necessary information describing the layout of your files on user's disks, as well as a variety of settings and options. To customize your uninstallation process you simply modify the INF file to suit your application.

Unlike some other installation packages, there are no scripts to write nor new languages to learn. With EDI UnInstall you just list your disk, directories, files, and you're off! But don't worry, you won't miss out on any features. EDI UnInstall is so complete, and so customizable, that almost anything you need can be easily accomplished.

With EDI UnInstall you won't spend days writing scripts, and your users won't be infuriated trying to set up your product. Trust EDI UnInstall and your uninstallation hassles will disappear.


Uninstallation procedure

EDI UnInstall is extremely easy to use. Your users will be asked a few simple questions and then the uninstallation will begin. They will always have the choice to proceed or cancel at any point if they feel uneasy about an operation.

User interaction

EDI UnInstall first asks the user for the application directory, which is usually the default you used to install it in the first place. Optionally, it allows the user to select which components to remove, instead of removing everything.

Throughout the process EDI UnInstall displays when a file is deleted or a Program Manager group is removed. This allows the user to feel comfortable with the process and not to worry about what is being done to their system. The only intervention required is when a user data file needs to be deleted. The user will be prompted for authorization. This ensures that no user data will ever be lost.

Aborting the uninstallation

The unitallation process can be aborted at any time by choosing Exit Unstall or Cancel from any of the dialog boxes. EDI UnInstall will report that the uninstallation was not completed and that the application may be in an unstable state. This is done as a precaution, since a partial uninstalltion could be hazardous to the system.

Completing the uninstallation

If the uninstallation has been properly completed and the INF file specifies a Program Manager group , the user is asked whether or not it should be removed. If Program Manager is not loaded, the group will not be removed.


General INF information

Below is some general information that you should keep in mind while preparing your INF file.

Preparing the INF file

EDI UnInstall uses an INF file, typically named UNINSTAL.INF, to determine what needs to be done. The INF file is actually a compressed version of a file you prepare using a plain ASCII editor, such as Windows' Notepad. That file is typically named  UNINSTAL.TXT. To compress the text file, you use the INFENCD.EXE utility, which can be found in the UTILS directory. You must only distribute the UNINSTAL.INF file, not the UNINSTAL.TXT file. For example, a typical editing session would consist of:

1.	Using Notepad to create the INF file.

2.	Saving the file as UNINSTAL.TXT to a working directory.

3.	Using INFENCD.EXE to compress the file to the installation disk. It will automatically be named UNINSTAL.INF.

NOTE:	The unregistered version does not include INFENCD.EXE. It expects UNINSTAL.INF to be a plain ASCII file. You should create your UNINSTAL.TXT file and then copy it to the installation disk as UNINSTAL.INF. Once you register, you will receive INFENCD.EXE.

INF File information

The INF file is parsed very carefully and you must insure that everything is properly specified. Here are a few things to remember:

1.	You can use as many spaces as you want after the equal sign and they are simply ignored by EDI UnInstall.

2.	If you use extra spaces before the equal sign, EDI UnInstall will interpret them and it can cause problems.

3.	Any line that starts with a semi-colon is treated as a remark and is ignored by EDI UnInstall. Use it to document your INF file.

4.	If you don't use Notepad to create your INF file, you should make sure that your editor does not use a CTRL-Z character to terminate the file. EDI UnInstall will read beyond the CTRL-Z and report an error. To make sure you don't have any CTRL-Z characters at the end of your INF file, load it into Notepad and remove any little black squares at the end of the file. The black squares generally look like this: .

Debugging the INF File

You must remember that the INF file is like a program's source code. It needs to be tested and debugged under various conditions. We have used and tested the uninstaller thoroughly, and so far, to the best of our knowledge, there are no major bugs. Still, this only means that the program itself is safe, the INF file that you write can still contain bugs. Check that you have properly labeled the disks, that all files have the correct directories and disks, and you have checked that all files are properly marked.


Distribution

Below are the general guidelines and rules for distributing your application.

Placing files on disk

You should place all the EDI UnInstall related files on the same disk. Preferably, this will be the same disk the user installed the application with. You should not copy the uninstaller to the user's hard drive during an installation. They should always run it from the place as the installer (i.e. the distribution diskette or central network directory).

Required distribution files

When you have completed the INF file and you have created your distribution disks, you will need to copy UNINSTAL.EXE, UNINSTAL.BIN, and UNINSTAL.INF, to the first disk in your package. This disk should be clearly identified so the user can locate it easily. You might also consider writing a message similar to this, on the label:

INSERT DISK AND RUN INSTALL OR UNINSTAL FROM WINDOWS

NOTE:	You may not distribute ARCHIVE.EXE, INFENCD.EXE, or your UNINSTAL.TXT with your package. Only the files listed above may be distributed. Including other files is a violation of the license agreement.

Renaming UNINSTAL.EXE

If you prefer to name the installer something else, such as UNSETUP.EXE, you can do so using the DOS RENAME command or with Windows' File Manager. For example, to change the installer to Unsetup, you would rename the files UNINSTAL.EXE and UNINSTAL.INF, to UNSETUP.EXE and UNSETUP.INF. Also, note that the extensions on both files must remain the same. Only the base name can change.

Modifying resources

UNINSTAL.BIN may be modified using a resource editor, such as Borland's excellent Resource Workshop or Whitewater's Resource Toolkit. With them you'll be able to change any of the strings, the fonts used in the dialogs, and even the dialog layouts themselves. The only thing you are not allowed to change, is the special About dialog box and copyright labels. The About dialog is a "secret" dialog box that only appears if you press ALT-I at the main dialog (secret in that the user never gets to see it).

To modify UNINSTAL.BIN you will have to uncompress it, modify it, and then re-compress and rename it. Follow these steps and you'll have no problems:

1.	Using ARCHIVE.EXE (in the UTILS directory) uncompress UNINSTAL.BIN to a separate temporary directory. The uncompressed file will be named UNINSTAL.EXE. Don't confuse this with the other, smaller file, of the same name. That's why you must uncompress to a different directory.

2.	Modify the resources using the resource editor of your choice.

3.	Compress the file, UNINSTAL.EXE, using ARCHIVE.EXE. It will create a new file name UNINSTAL$00.

4.	Finally, rename UNINSTAL.$00 to UNINSTAL.BIN, and copy it to the original directory.

That's it! You now have a customized installer. You could use this technique to create French, Spanish, German, etc., installers for your different international markets.

NOTE:	When modifying any file, make sure you have a backup of the original. You must never modify the original file, or you won't have anything to revert to if you make a mistake.


Custom DLLs

EDI UnInstall supports custom DLLs to expand the available capabilities and to tailor itself to almost any installation's needs. By creating routines to handle special parts of your uninstallation (such as extra setup information or deleting specially encoded files), you can completely customize EDI UnInstall without having to write your own uninstaller.

Using DLLs, there's very little that EDI UnInstall can't handle. Custom DLLs expand your possibilities and personalize your installation. Plus, since the DLL can be written in almost any language, you don't have to learn to program in some strange new script language, as with many other installation utilities.

For more information on creating a custom DLL, see the INSTLIB.PAS and INSTLIB.C files. The example files are in Turbo Pascal for Windows and Borland's C++, but a DLL can be written in any language that supports creation of DLLs.

If you aren't too sure about what you need to do or you don't want to write the DLL yourself, we can often create a custom DLL for a reasonable fee.


Sample INF file

Below is a sample INF file for EDI UnInstall.

; EDI UnInstall - v1.00 - UnInstallation Script

; Eschalon Development Inc.

[Application]

Name=EDI Install Pro

Title=EDI Install Pro - Uninstallation

Directory=C:\WINDOWS\INSTALL.PRO

PM Group=EDI Install Pro

Free Space=280

Background=Dithered

Bitmap File=UNINSTAL.BMP

[Components]

1=Documentation 48

2="Installer & Utilities" 200

3="Custom library - Sample Code" 32

[Directories]

1=Samples

2=Utils

[Files]

ReadMe text file=README.TXT        1 0 A

Install Manual=INSTALL.WRI         1 0 A

EDI Install=INSTALL.EXE            2 0 A

Install Info=INSTALL.INF           2 0 A

Background bitmap=INSTALL.BMP      2 0 A

File Packer=PACK.EXE               2 2 A

File Unpacker=UNPACK.EXE           2 2 A

File Packer (DOS)=DPACK.EXE        2 2 A

File Unpacker (DOS)=DUNPACK.EXE    2 2 A

Install Info (.TXT)=INSTALL.TXT    3 1 A

DLL Sample Code=INSTLIB.PAS        3 1 A

DLL Sample Code=INSTLIB.C          3 1 A

DLL Sample Code=INSTLIB.DEF        3 1 A

[INI Files]

INI Entry=WIN.INI "EDI Install Pro"

Related topics

•	INF Sections


INF Sections

The INF file is separated into various sections that control different aspects of the uninstallation process. By modifying them you configure EDI UnInstall for your own application.

Section	Description

Application	This section contains basic information about your application and the uninstallation.

Components 	This section lists the names and sizes of the file components (sets or groups of files) that the user has the option of removing.

Directories 	This section lists the names of the directories required for the uninstallation.

Files,

Windows Files,

System Files 	These sections lists all the files that EDI UnInstall must delete from the user's drive.

INI Files 	This section lists entries for EDI UnInstall to delete or modify in .INI files on the user's system.

Related topics

•	Sample INF file


Application section

The Application section contains basic information about your application and the installation.

Section contents

An application section must contain at least the following fields: Name, Title, Directory, Free Space, and Files Total. The other fields are optional. A complete section would look like this

[Application]

Name=EDI Install Pro

Title=EDI Install Pro - Uninstallation

Background=Dithered

Bitmap File=UNINSTAL.BMP

UnInstall DLL=UNINSTLB.DL$ Y

Directory=C:\WINDOWS\INSTALL.PRO

PM Group=EDI Install

Free Space=280

A minimal section would look like this

[Application]

Name=EDI Install Pro

Title=EDI Install Pro - Uninstallation

Directory=C:\WINDOWS\INSTALL.PRO

Free Space=280

Application entries

The following table describes each of the entries available in the Application section.

Entry	Description

Name	The name of the application that is to be removed. The name appears in portions of the text and in some dialog boxes.

Title	The title that should appear in the caption of every dialog box. Typically this will be "Application Name - Uninstallation".

Directory	The default directory where you originally installed the application. The user may change this by specifying a different drive and directory.

PM Group	The name of the Program Manager group to remove. This entry is optional and is only required if you want EDI UnInstall to remove a group.

Free Space	The amount of free kilobytes used by the application. This amount should equal the total size of all the files that have been installed, plus whatever extra operating overhead is required.

Background	The type of background to use for the installation. You may use the following values:

NONE	Will not display a background.

DITHERED	Will display the familiar dithered blue background seen in many Windows installations.

BITMAP	Will display a centered bitmap file as specified in the Bitmap File field

This entry is optional. If you don't specify a value, it will default to Dithered.

Bitmap File	Specifies the bitmap file to use for a background if Dithered or Bitmap are used in Background.

If Dithered is specified for Background, then the bitmap file should be a black and white logo to display at the top of the screen. The image is inversed so that the black becomes white and the white becomes invisible.

If Bitmap is specified for Background, then the bitmap file can be any 16 color image. The file should be run-length encoded to save space (Note: Paint Brush does not support RLE files - use Borland's Resource Workshop).

This entry is optional. If you don't specify a value, and Background equals Dithered or Bitmap, it will default to UNINSTAL.BMP.

UnInstall DLL	Specifies a custom DLL for EDI UnInstall to call. The entry consist of two fields - the DLL's file name and whether or not the file is compressed.

If the compressed field is "Y", EDI UnInstall will decompress the file as it is copied. If the value is "N", it will simply copy the file without decompressing it. If the file is compressed, you should specify the name with the appropriate "$" extension (example: UNINSTLB.DL$). See the INSTLIB.PAS and INSTLIB.C files for more information. This entry is optional.

Related topics

•	Sample INF file

•	Components

•	Directories

•	Files

•	INI Files


Components section

The Components section lists the names and sizes of the file components (sets or groups of files) that the user has the option of removing.

You do not need to include this section unless you want the user to be able to do a partial or selective uninstallation. This is very practical with large applications, as the user can choose to remove only what he no longer needs. If this section is omitted from the .INF file, the components button of the main dialog is not displayed during the uninstallation.

Components entries

Each entry consists of an integer number (1 to 32000); an equal sign; the description of the component; and the size, in Kilobytes, of the component. For example,

[Components]

1="Applications & Utilities" 680

2="Documentation & Help"     270

3=Extras                     120

Component numbers

The numbers are only used internally and need not be consecutive, although it makes more sense to do so (for example: 1, 2, 3, 4, 5; rather than: 1, 45, 33, 56, 78).

Using spaces in description

Any time that you wish to use a space or a tab for anything other than separating fields, you should enclose the field in quotation marks. For example,

1="Applications & Utilities" 680

Size of component

The size of the component should be specified in kilobytes. This value should equal the size of all the files belonging to this component, plus whatever extra operating overhead is required. The total size of all components should match the Free Space entry in the Application section.

Related topics

•	Sample INF file

•	Application

•	Directories

•	Files

•	INI Files


Directories section

The Directories section lists the names of the directories containing the files to delete.

EDI UnInstall uses this information to determine which directory contains the file to be deleted. The path is always relative to the source and destination, which the user specified.

Directories entries

Each entry consists of a number (1 to 32000); an equal sign; and the name of the directory. For example,

[Directories]

1=Utility

2=Samples

3=Samples\Pascal

4=Samples\C

Directory numbers

The numbers are only used internally and need not be consecutive, although it makes more sense to do so (for example: 1, 2, 3, 4, 5; rather than: 1, 45, 33, 56, 78). Number zero (0) is reserved and specifies the root directory. You can use zero (0) in the files section whenever you need to specify the destination directory itself. For example,

WinCLI Pro=WINCLI.EXE	1	0 A

↑ Directory

would delete the WINCLI.EXE file in the user specified destination directory.

Related topics

•	Sample INF file

•	Application

•	Components

•	Files

•	INI Files


Files section

The Files section lists all the files that EDI UnInstall must delete from the user's drive, in the specified directory. The Windows Files section lists all the files that EDI UnInstall must delete from the user's WINDOWS directory. The System Files section lists all the files that EDI UnInstall must delete from the user's SYSTEM directory.

The Windows Files and System Files sections are typically used to remove files taht were installed in system directories, such as Microsoft's Visual Basic VBRUN100.DLL or Borland's Resource Workshop BWCC.DLL. You must be very careful not to delete a file that might be used by another application. For example, if the user has multiple Visual Basic programs, they will cease to function if you delete the run-time module. It is better to leave system files on the drive, just in case. You should noly delete files that you absolutely know are not required.

Files entries

Each entry consists of a description, an equal sign, and 4 fields describing the file to be deleted. The description is displayed in the progress dialog box, indicating which file is currently being deleted. It may contain spaces, commas, quotes, and other special characters, except an equal sign.

Entry fields

The 4 fields in a Files section entry are: File name, Component, Directory, and the method to use. All the fields are required and must appear in the correct order, described below.

WinCLI Pro	=	WINCLI.EXE	1	0	A

↑ File name	↑ Method

↑ Directory

↑ Component

The following table describes each of the fields in a Files section entry.

Field	Description

File name	The exact name of the file to be deleted, as it appears on the users drive. Do not specify the path.

Component 	The component number that this file belongs to. A file will only be deleted if the component was selected by the user. If you don't include a Components section, you can specify zero (0) as the component number. An item with zero (0) as the component will always be deleted, regardless of what the user selects.

Directory 	The directory number that contains the file to be deleted. The file path is constructed by combining the application directory, this directory, and the file name.

Method	Specifies the method to use during deletion. The following methods are supported:

A	Always delete the file.

C	Confirm with the user before deleting the file.

R	If the file has the read-only archive bit set, confirm with the user before deleting it.

Related topics

•	Sample INF file

•	Application

•	Components

•	Directories

•	INI Files


INI Files section

The INI Files section lists entries for EDI UnInstall to delete or modify in .INI files on the user's system. This section is optional.

INI Files entries

Each entry consists of a description; an equal sign; the .INI file to delete or modify; the section name; the keyword; and the value to assign to the keyword. For example, to delete the following section in WIN.INI,

[WinCLI]

Color=Black

you would use

App INI=WIN.INI WinCLI

Using spaces in keys or values

Any time that you wish to use a space or a tab for anything other than separating fields, you should enclose the field in quotation marks. For example,

App INI=WIN.INI "App Exe"

Specifying application directory

If you want to specify the application directory in one of the fields, you must use two consecutive percent signs (%%). EDI UnInstall will replace percent signs with the application directory, where ever it finds them. For example, to create the following section in WIN.INI,

[NewApp]

App Dir=D:\APPDIR

App Exe=D:\APPDIR\APP.EXE

you would use

[INI Files]

App INI=WIN.INI NewApp "App Dir" %%

App INI=WIN.INI NewApp "App Exe" %%\APP.EXE

Deleting .INI files, sections, or keywords

If you leave out the section name, the keyword, or the value, the missing part will be deleted from the specified .INI file. For example, to delete the App Exe entry of the NewApp section listed above, you would use:

[INI Files]

App INI=WIN.INI NewApp "App Exe"

If you wanted to delete the whole New App section, you would use

[INI Files]

App INI=WIN.INI NewApp

Finally, if you wanted to delete the .INI file itself, you would use

[INI Files]

App INI=WIN.INI

NOTE:	This is a very poweful feature. You should use it with extreme caution, as deleting entries or files on a user's system is a very dangerous thing to do.

Related topics

•	Sample INF file

•	Application

•	Components

•	Directories

•	Files


Copyright

© Copyright 1992, 1994 Robert Salesas. All Rights Reserved. This document may not, in whole or part, be copied, photocopied, translated, or reduced to any electronic medium or machine readable form, without prior consent, in writing, from Robert Salesas. All software described in this manual is © Copyright 1992, 1994 Robert Salesas. All rights reserved. The distribution and sale of these products are intended for the use of the original purchaser only. Lawful users of these programs are hereby licensed only to read the programs, from their media into memory of a computer, solely for the purpose of executing the programs on one machine at a time. Duplicating or copying for other than backup purposes, or selling or otherwise distributing these products is a violation of the law and this agreement.

Related topics

•	Disclaimer

•	License agreement


Disclaimer

This information is provided "as is" without representation or warranty of any kind, either express or implied, including without limitation, any representations or endorsements regarding the use of, the results of, or performance of the information, its appropriateness, accuracy, reliability, or correctness. The entire risk as to the use of this information is assumed by the user. in no event will Robert Salesas, Eschalon Development Inc. or it's employees be liable for any damages, direct, indirect, incidental or consequential, resulting from any defect in the information, even if Robert Salesas or Eschalon Development Inc. have been advised of the possibility of such damages. This disclaimer shall supersede any verbal or written statement to the contrary. If you do not understand or accept these terms you must cease and desist using this product immediately.

Related topics

•	Copyright

•	License agreement


License agreement

Before you can use this product, you must purchase a license. Please see the EDI Install Pro manual for more information, or contact us at 604-945-3198.

Your use of this package indicates your understanding and acceptance of the following terms and conditions. If you do not understand or accept these terms you must cease and desist using this product immediately.

1. Copyright: These programs and the related documentation are copyright. The sole owner is Robert Salesas. You may not use, copy, modify, or transfer the programs, documentation, or any copy except as expressly provided in this agreement.

2. License: You have the non-exclusive right to use any enclosed program only on a single computer at a time. You may load the program into your computers temporary memory (RAM). You may physically transfer the program from one computer to another, provided that the program is used on only one computer at a time. You may not decompile, disassemble, reverse engineer, modify, or translate the program or the documentation. You may not attempt to unlock or bypass any copy protection utilized with the program. You may not remove or modify any copyright notice nor the About dialog box, which can be accessed by pressing ALT-I at the main window. All other rights and uses not specifically granted in this license are reserved by Robert Salesas and/or Eschalon Development Inc.

3. Distribution: You may distribute UNNSTAL.EXE, and UNINSTAL.BIN, as long as their intended and possible use is only to uninstall an application, other than themselves, on a users computer. No other files or documents from EDI UnInstall may be distributed. They must be part of a package of which they are not the main product. You may not distribute copies of the complete package or the accompanying utilities and documentation.

4. Back-up and Transfer: You may make one (1) copy of the program solely for back-up purposes. You must reproduce and include the copyright notice on the back-up copy. You may transfer the product to another party only if the other party agrees to the terms and conditions of this agreement and completes and returns a registration card to Eschalon Development Inc. If you transfer the program you must at the same time transfer the documentation and back-up copy or transfer the documentation and destroy the back-up copy.

5. Terms: This license is effective until terminated. You may terminate it by destroying the program, the documentation and copies thereof. This license will also terminate if you fail to comply with any terms or conditions of this agreement. You agree upon such termination to destroy all copies of the program and of the documentation.

Related topics

•	Copyright

•	Disclaimer